(function($){
  $.fn.fadeHover = function(params){
    var base = this;
    base.selector = $(this).selector;
    params = $.extend({},params);
    
    base.init = function() {
      base.opacity = { normal: round(this.css('opacity'), 2), hover: round(getRuleStyle(base.selector + ':hover'),2), nothover: round(getRuleStyle(base.selector + '.nothover'), 2)};
      base.hover(base.appears, base.disappears);
    }
    
    base.appears = function() {
      $(this).stop().animate({opacity: base.opacity.hover}, 'normal');
      base.not($(this)).stop().animate({opacity: base.opacity.nothover}, 'normal');
    }
    
    base.disappears = function() {
      base.stop().animate({opacity: base.opacity.normal}, 'normal');       
    }
    
    base.init();    
    return base;   
  };
})(jQuery);
 